জাভাস্ক্রিপ্টে অ্যারো ফাংশন (Arrow Function) একটি সংক্ষিপ্ত সিনট্যাক্সে ফাংশন ডিফাইন করার পদ্ধতি। এটি ES6 (ECMAScript 2015) থেকে পরিচিত এবং কোডের গঠন সহজ এবং পরিষ্কার করে। অ্যারো ফাংশনের মূল সুবিধা হলো এর সিম্পল সিনট্যাক্স এবং this
কিওয়ার্ডের আচরণের পরিবর্তন।
অ্যারো ফাংশন সাধারণ ফাংশনের চেয়ে কম লাইন কোডে লেখা যায়। এর সঠিক সিনট্যাক্স নিচে দেখানো হলো:
const functionName = (parameters) => {
// function body
}
এখানে:
functionName
: ফাংশনের নাম (যদি দরকার হয়)।parameters
: ফাংশনে পাস করা আর্গুমেন্টগুলো (যদি থাকে)।=>
: অ্যারো অপারেটর, যা ফাংশনের ডিফিনিশন শুরু করে।const greet = (name) => {
return `Hello, ${name}!`;
};
console.log(greet("Alice")); // আউটপুট: Hello, Alice!
এখানে greet
একটি অ্যারো ফাংশন যেটি একটি প্যারামিটার name
নেয় এবং একটি স্ট্রিং রিটার্ন করে।
অ্যারো ফাংশন সাধারণ ফাংশনের তুলনায় আরো কম লাইনে কোড লেখা সম্ভব। এর ফলে কোড আরো সহজে পড়া এবং বুঝতে সুবিধা হয়।
// সাধারণ ফাংশন:
const sum = function(a, b) {
return a + b;
};
// অ্যারো ফাংশন:
const sum = (a, b) => a + b;
এখানে অ্যারো ফাংশনটি সংক্ষিপ্ত এবং পরিষ্কার।
this
কিওয়ার্ডের ব্যবহারঅ্যারো ফাংশনের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো এটি নিজস্ব this
কিওয়ার্ড রাখে না। পরিবর্তে, এটি বাইরের কনটেক্সট থেকে this
গ্রহণ করে। সাধারণ ফাংশনে this
গ্লোবাল অবজেক্ট বা নির্দিষ্ট কনটেক্সটের উপর নির্ভর করে, কিন্তু অ্যারো ফাংশনে this
সর্বদা তার আউটারে থাকা কনটেক্সটের this
কে নির্দেশ করে।
function showThis() {
console.log(this); // এখানে 'this' গ্লোবাল অবজেক্ট হতে পারে
}
showThis();
const showThis = () => {
console.log(this); // এখানে 'this' বাইরের কনটেক্সটের 'this' কে নির্দেশ করবে
};
showThis();
এখানে, অ্যারো ফাংশনটি this
কিওয়ার্ডের আচরণ পরিবর্তন করে, যেটি বাইরের কনটেক্সট থেকে ঐক্যবদ্ধ থাকে। এই কারণে, অ্যারো ফাংশন ইভেন্ট হ্যান্ডলার বা কলব্যাক ফাংশনগুলিতে কার্যকরী হতে পারে।
যদি অ্যারো ফাংশনটি একটি একক এক্সপ্রেশন রিটার্ন করে, তাহলে return
কিওয়ার্ড ব্যবহার করার দরকার হয় না। ফাংশন স্বয়ংক্রিয়ভাবে এক্সপ্রেশনটির মান রিটার্ন করে।
const add = (a, b) => a + b;
console.log(add(3, 4)); // আউটপুট: 7
এখানে, অ্যারো ফাংশনটি স্বয়ংক্রিয়ভাবে a + b
এর মান রিটার্ন করবে, কারণ এটি একটি একক এক্সপ্রেশন।
যদি অ্যারো ফাংশনে একটি মাত্র প্যারামিটার থাকে, তাহলে প্যারামিটারটি প্যারেন্টেসিসের (ব্র্যাকেট) ভিতরে দেওয়ার প্রয়োজন নেই। এটি স্বয়ংক্রিয়ভাবে ওই একক প্যারামিটারকে গ্রহণ করে।
const square = x => x * x;
console.log(square(5)); // আউটপুট: 25
এখানে, একমাত্র প্যারামিটার x
এর জন্য প্যারেন্টেসিস (ব্র্যাকেট) ব্যবহার করা হয়নি, কারণ এটি একক প্যারামিটার।
অ্যারো ফাংশন কনস্ট্রাক্টর ফাংশন হিসেবে ব্যবহৃত হতে পারে না, অর্থাৎ new
কিওয়ার্ডের মাধ্যমে অ্যারো ফাংশন দিয়ে নতুন অবজেক্ট তৈরি করা সম্ভব নয়।
const Person = (name, age) => {
this.name = name;
this.age = age;
};
const person1 = new Person("John", 30); // TypeError: Person is not a constructor
এখানে, Person
অ্যারো ফাংশনটি কনস্ট্রাক্টর হিসেবে কাজ করবে না, কারণ এটি this
কিওয়ার্ডের মানের জন্য আলাদা আচরণ করে।
arguments
অবজেক্ট নেইঅ্যারো ফাংশনে arguments
অবজেক্টের ব্যবহারের সুযোগ নেই, যা সাধারণ ফাংশনে প্যারামিটারগুলো দেখতে ব্যবহৃত হয়। অ্যারো ফাংশনে যদি arguments
ব্যবহার করতে হয়, তবে তা সংজ্ঞায়িত করা যাবে না।
const sum = () => {
console.log(arguments); // ReferenceError: arguments is not defined
};
sum(1, 2, 3); // Error
এখানে, arguments
ব্যবহার করলে ত্রুটি হবে কারণ অ্যারো ফাংশনে এটি উপলব্ধ নেই।
অ্যারো ফাংশন জাভাস্ক্রিপ্টের একটি শক্তিশালী বৈশিষ্ট্য যা সংক্ষিপ্ত সিনট্যাক্সে ফাংশন লেখার সুবিধা প্রদান করে। এটি this
কিওয়ার্ডের আচরণকে পরিবর্তন করে এবং কোডের গঠন সহজ করে তোলে। অ্যারো ফাংশন সাধারণত ছোট এবং একক এক্সপ্রেশন রিটার্নিং ফাংশনগুলির জন্য ব্যবহৃত হয়, কিন্তু এটি কনস্ট্রাক্টর ফাংশন হিসেবে বা arguments
অবজেক্টের সাথে ব্যবহৃত হতে পারে না।
common.read_more